//#include <iostream>
//#include <algorithm>
//using namespace std;
//
//const int N = 310;
//struct Stu
//{
//	int chinese;
//	int math;
//	int english;
//	
//	int total;
//	int id;
//}stu[N];
//
//struct Cmp
//{
//	bool operator()(Stu &t1, Stu &t2)
//	{
//		if(t1.total != t2.total)
//			return t1.total > t2.total;
//		else if(t1.chinese != t2.chinese)
//			return t1.chinese > t2.chinese;
//		else
//			return t1.id < t2.id;
//	}
//}cmp;
//int main()
//{
//	int n;
//	cin >> n;
//	for(int i = 1; i <= n; i++)
//	{
//		cin >> stu[i].chinese >> stu[i].math >> stu[i].english;
//		stu[i].total = stu[i].chinese + stu[i].math + stu[i].english;
//		stu[i].id = i;
//	}
//	sort(stu + 1, stu + n + 1, cmp);
//	for(int i = 1; i <= 5; i++)
//	{
//		cout << stu[i].id << " " << stu[i].total << endl;
//	}
//	return 0;
//}

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
struct Stu
{
	string name;
	int y;
	int m;
	int d;
	
	int id;
}stu[N];

struct Cmp
{
	bool operator()(Stu &s1, Stu &s2)
	{
		if(s1.y != s2.y)
			return s1.y < s2.y;
		else if(s1.m != s2.m)
			return s1.m < s2.m;
		else if(s1.d != s2.d)
			return s1.d < s2.d;
		else
			return s1.id > s2.id;
	}
}cmp;

int main()
{
	int n;
	cin >> n;
	for(int i = 0; i < n; i++)
	{
		cin >> stu[i].name >> stu[i].y >> stu[i].m >> stu[i].d;
		stu[i].id = i;
	}
	sort(stu, stu + n, cmp);
	for(int i = 0; i < n; i++)
	{
		cout << stu[i].name << endl;
	}
	return 0; 
}
